﻿/* 
 * 本程序提供最基本的Douban OAuth认证的C#示例代码
 * 
 * OAuthBase.cs代码来源于 http://code.google.com/p/oauth/
 * 
 * 更多其他语言版本的Douban OAuth认证示例代码在 http://code.google.com/p/douban-oauth-sample/ 上提供
 * 
 * 有任何疑问，可以到 http://www.douban.com/group/dbapi/ 上提问
 * 
 * 感谢leyang豆友 (http://www.douban.com/people/leyang/) 的大力协助
 * 
 */

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Web;
using System.IO;
using OAuth;
using System.Diagnostics;
using System.Threading;
using Butterfly.OAuth;

namespace Butterfly.SNS
{
    /*
     * Douban OAuth认证包括以下四步内容
     * 
     * 1. 获取Request Token，该步骤使用API Key和API Key Secret签名
     * 2. 用户确认授权
     * 3. 换取Access Token，该步骤使用API Key、API Key Secret、Request Token和Request Token Secret签名
     * 4. 访问受限资源，该步骤使用API Key、API Key Secret、Access Token和Access Token Secret签名
     * 
     */

    // Should be singleton
    class DoubanOAuth : OAuthBase
    {
        #region Constructors

        public DoubanOAuth(ApiAdresses addresses)
            : base(addresses)
        {
        }

        public DoubanOAuth(ApiAdresses addresses, string token, string tokenSecret)
            : base(addresses, token, tokenSecret)
        {
        }

        #endregion

        #region Properties

        protected override string ApiKey { get { return Butterfly.Security.Keys.Douban_ApiKey; } }
        protected override string ApiKeySecret { get { return Butterfly.Security.Keys.Douban_ApiKeySecret; } }

        #endregion
    }
}
